老师木:有了Tensorflow,为什么我们还需要另外一个深度学习平台框架 | GIAC 访谈
导读:12 月 22~23 日,高可用架构和 msup 联合主办的 GIAC 全球互联网架构大会将于上海举行。GIAC 全球互联网架构大会是面向架构师、技术负责人及高端技术从业人员的技术架构大会。GIAC 于 2016 年 12 月成功举办了第一届,今年的 GIAC 已经有腾讯、阿里巴巴、百度、平安、饿了么、携程、七牛、蚂蚁金服、罗辑思维、摩拜、唯品会,LinkedIn, Pivotal, Mesosphere, AdMaster, Hulu 等公司专家出席。
在大会前夕,高可用架构采访了本届大会讲师老师木,就目前业界非常热门的机器学习话题进行了探讨。
老师木,本名袁进辉。 2003 年 7 月毕业于西安电子科技大学计算机学院,并被免试推荐入清华大学计算机系攻读博士学位,师从张钹院士,研究方向为计算机视觉及机器学习, 2008 年 7 月获得工学博士学位,博士论文获得清华大学优秀博士学位论文奖,同年留校做师资博士后,参与计算神经科学方向的学科建设,与李兆平等国际知名学者合作开展神经科学方面的理论研究。
2004 至 2007 年参与美国国家技术标准局组织的视频检索评测,获得多项第一。 2010 年,与国家体育总局合作,负责研发斯诺克比赛“鹰眼”系统,面世后取代英国鹰眼系统服务于各项国际大赛,并被国家队作为日常训练辅助系统。
2011 年加入网易,任高级应用研究员。 2012 年作为早期成员加入 360 搜索团队,一年之后,产品上线成为国内市场份额第二的搜索引擎。 2013 年加入微软亚洲研究院,主要从事大规模机器学习平台的研发工作。 2014 年,首次将训练 LDA 主题模型的吉布斯采样算法的计算复杂度降到单个词为常数级,基于该算法的分布式实现仅需数十台服务器即可完成以往数千台服务器才能完成的任务,应用于微软在线广告系统,被主管研究的全球副总裁周以真女士称为”年度最好成果“。 2015 年至 2016 年底,专注于搭建基于异构集群的深度学习平台,项目荣获微软亚洲研究院院长特别奖 。
2017 年创立北京一流科技有限公司,着力打造下一代分布式深度学习平台。
高可用架构:老师木你好,很多读者应该都知道你离职创业了,但是还不太清楚你们做的产品和要解决的问题,能否介绍一下?
老师木:目前唯一的产品是深度学习平台或框架,市场定位和和 Google 的 Tensorflow, Facebook 的 Pytorch, Caffe2, Amazon 的 MxNet, Microsoft 的 CNTK, Baidu 的 PaddlePaddle 完全一样。要解决深度学习开发者在易用性和扩展性方面遇到的痛点。
高可用架构:你们的平台和 Google 的 TensorFlow,百度的 PaddlePaddle 有什么异同么?
老师木:相同之处在于市场定位,面向的客户一样,不同在于大家的技术路线不同。每一个经典的软件解决方案背后都有独特,强大的需求在推动。新的业界需求出现时,解决方案呈现百花齐放,百家争鸣的局面,但必然会演进收敛到一种业界公认的 best practice。正像结构化数据的存储和查询催生了数据库,大规模离线批处理的需求孕育了 Hadoop。我们相信,深度学习平台技术仍未收敛,我们走在一条实现易用性和扩展性的必由之路上。
高可用架构:这种机器学习平台最后会形成事实标准么?
老师木:“事实工业标准”和“工业标准”不同,既不是厂商宣称的,也不是权威组织钦定的,是用户选择的结果,是无冕之王。最好地满足用户需求是我们的唯一目标,能不能成为事实工业标准,要看用户和开发者认不认可。关于机器学习平台,现在还不好说哪一个会成为标准,但一定会出现一个。
机器学习肯定离不开数据,同时也需要分布式计算平台,怎么看待机器学习和大数据平台(比如:各种分布式数据库)以及分布式计算调度平台(比如: yarn, kubernetes)的结合形式?
首先,我坚信,各种业务最终一定会走向“数据驱动”的模式,正如之前的搜索,广告,推荐系统,用户画像,金融风控,未来的自动驾驶等等。数据驱动的业务模式依赖于一整条数据加工分析的流程,包括数据的采集,存储,清洗,分析,预测,诊断,可视化等等,机器学习只是这个链条中的一环。所以,机器学习和大数据平台不是并列的关系,机器学习平台只是广义上大数据平台的一部分。当前,在各个环节都发展出来一些广为用户接受的技术平台,譬如分布式存储和分析 Hadoop, Hbase, Spark,这些系统在数据存储和清洗阶段仍是当前最好的选择,使得开发,部署和运维更加便利的 Docker,分布式资源管理和调度利器 Kubernetes, Yarn 等等。机器学习平台一定要和这些上下游的开源工具有机衔接成为一个整体。我们的想法也是,弱水三千,只取一瓢饮,不求面面俱到,只把我们最擅长的事做到最好。
高可用架构:机器学习的平台如果切入到软件研发流程里,理想的形态是什么样的?它和当前的业务系统应该如何交互?最后输出的能力应该如何应用到业务系统中?
一个软件的基本功能是根据业务逻辑对输入数据反应产出合适的输出。在传统的软件研发流程里,软件的业务逻辑全部由程序员编码完成。在数据驱动型的软件研发流程中,程序员只负责一部分程序的编码工作,还有一部分程序是由机器学习软件根据训练数据推导生成的(可以把机器学习训练得到的模型理解成一种程序)。机器学习软件根据数据推导出的程序取代了一部分原本需要领域专家和程序员协作完成的那部分代码,机器生成的程序比人工编写的程序更加强大,更准确,更鲁棒。机器学习平台软件在数据驱动的业务流程中的扮演角色是,利用更多的数据,更快的推导出准确率更高的程序。
高可用架构:现在机器学习领域的创业,除了像你们这样做基础设施平台的,还有哪些方面的机会?
在整个机器学习领域的创业形式中,可以看到几种模式,基于垂直场景的,基于算法的,基于计算力(软件或者硬件)。 90% 以上的都属于第一类,都是机器学习技术和场景相结合的模式,例如金融,医疗,自动驾驶。几乎没有基于算法的创业模式 (OpenAI, ElementAI 除外),一般算法专家都聚集在大学,研究所和大公司研究院。可能有 10% 的创业是围绕计算力的,其中绝大部分都是聚焦在硬件领域,譬如各种 AI 专用芯片,像我们这样聚焦在计算力的软件平台上的创业公司可以说非常另类,只有 Google, Amazon, Facebook, Microsoft, Baidu 这样的巨头在做类似的事情。总体上,从业者在“ AI+ 场景”这种模式里的机会非常多。
高可用架构:现在机器学习很火,很多人担心不学习机器学习感觉就要落伍了,对工程背景的研发工程师来说,如何应对这波浪潮?是否适合切入到这个领域?如何切入?
上文提到可以把机器学习理解成机器自动从训练数据中推导出程序,这种自动生成的程序在某些方面可以比程序员的作品更加优秀。说的危言耸听一点,机器学习在一些重要的商业场景已经证明了它可以取代一部分程序员(当然,机器学习程序本身也是程序员的工作成果)。
无论从好奇心,还是功利的角度看(机器学习一般意味着更高薪水的职位,更高的工作效率),工程背景的研发工程师都有必要去拥抱这一新生事物并思考机器学习能不能给自己正在做的工作带来收益。机器学习的门槛并没有想象的那么高,而且门槛会越来越低,机器学习工具会变成像结构化数据库一样的标准软件组件。
研发工程师该如何切入这个领域呢? 首先要意识到机器学习席卷各行各业的大势已不可逆转,其次是克服对未知领域的畏惧,然后最重要的是付诸行动。这几年,我认识多位工程师朋友都通过自己持续的学习和实践变成用机器学习解决实际问题的高手。今天,深度学习技术比以前的常见的机器学习技术门槛更低了,没有那么多复杂的数学道理在里面。可以先去用那些开源的代码和工具去解决一个实际问题,结合各种优秀的公开课,论文,还可以通过博客,微信等社交媒体上获取很多业界高手分享的经验。
高可用架构:最后您对 GIAC 有什么期望和寄语么?
GIAC 互联网架构大会已经是技术同行分享信息和见解的专业平台,期待架构大会涵盖面更广,探讨的话题更深入,在科普会议和专业学术会议之间独树一帜。
本期 GIAC 大会上,机器学习部分精彩的议题如下:
注:出品人及演讲议题以最新官网 http://2017.thegiac.com 为准。
参加 GIAC,盘点年底最新技术,高可用架构会员专享 2 天票直减 1700 元,速戳“阅读原文”或识别二维码申请。